﻿using System.Collections.Generic;
using ChibiTD.Common;
using ChibiTD.Common.Enums;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace ChibiTD.Core.Interfaces
{
    public interface IEntity
    {
        Game Game { get; set; }
        int Width { get; set; }
        int Height { get; set; }
        Texture2D Texture { get; set; }
        Vector2 Position { get; set; }
        Dictionary<AnimationState, Animation> Animations { get; set; }
        AnimationState CurrentAnimation { get; set; }
        bool LoopAnimation { get; set; }
        float Speed { get; set; }
        float Rotation  { get; set; }
        MovementState MovementState { get; set; }

        void LoadTexture(string texture);
        void Draw(SpriteBatch batch);
        void UpdateAnimation(GameTime gameTime);
    }
}
